<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <!-- ## 1. 给一段文章中的全部指定词语进行过滤

   ```javascript
   // 比如我要过滤 "SM"
   
   var str = 'asdasdSMasdasdasdSMsdasdasdSMsadasd'
   
   // 需要结果
   // asdasd**asdasdasd**sdasdasd**
   ```

## 2. 反转字符串

   ```javascript
   var str = 'abcdefg'
   
   // 要求结果
   // gfedcba
   ```

## 3. 统计字符串中每个字符的个数？以对象的形式返回

   ```javascript
   var str = 'abcdacbabcbababcbabcabd'
   
   // 结果
   // { a:5， b: 出现次数, ...}
   ```

## 4. aabccd，去掉重复的字符，使结果显示 abcd

## 5. 编写函数，判断一个字符串是否是 “可回文字符串”

   - 可回文字符串： 正着和反着一样
   - 例如： `abcba` / `你好世界世好你` 
   - 返回值是布尔值


## 6.要求：检查一个字符串是否以指定的字符串结尾。

```javascript
    function(){
        return 布尔值
    }
    fun(str,value)
```

-   如果是，返回true;如果不是，返回false。

## 7.寻找连续5位数中的最大数

-   给定一个较大数的字符串
-   该字符串的长度大于等于五
-   从该数字字符串中找出连续五位数并且是其中最大的
-   例如：”1234567890” => 67890
-   例如：”987644” => 98764
-   方法的返回值是一个数字


## 8.随机生成一个五位以内的数，然后输出该数共有多少位，每位分别是什么。

233  '233有3位数，分别是 2 3 3' -->

    <script>
        //     2. 反转字符串

        // ```javascript
        // var str = 'abcdefg'

        // 要求结果
        // gfedcba
        window.onload = () => {
            console.log("翻转字符串")
            let str = "abcdefg";
            let arr1 = str.split("").reverse().join("");
            console.log(arr1)
            //             统计字符串中每个字符的个数？以对象的形式返回

            // ```javascript
            // var str = 'abcdacbabcbababcbabcabd'

            // // 结果
            // // { a:5， b: 出现次数, ...}
            console.log("统计字符串");
            let str1 = "abcdacbabcbababcbabcabd";
            let arr2 = str1.split("").reduce(function (pre, cur) {
                if (pre[cur]) {
                    pre[cur] += 1;
                }
                else {
                    pre[cur] = 1
                }
                return pre
            }, {})
            for (let key in arr2) {
                console.log(key + "出现了" + arr2[key])
            }

            // aabccd，去掉重复的字符，使结果显示 abcd
            console.log("去重:");
            let str2 = "aabccd";
            let quchong = ""
            for (let key in str2) {
                if (quchong.indexOf(str2[key]) == -1) {
                    quchong = quchong + str2[key]
                }
            }
            console.log(quchong)
            //             编写函数，判断一个字符串是否是 “可回文字符串”

            //    - 可回文字符串： 正着和反着一样
            //    - 例如： `abcba` / `你好世界世好你` 
            //    - 返回值是布尔值
            console.log("回文");
            let str3 = "abcba";

            let st = str3.length;
            // console.log(arr3)
            let num = 0
            let fun = (str3) => {
                let arr3 = str3.split("").reverse().join("");
                if (str3 == arr3) {
                    return true
                } else {
                    return false
                }

            }
            console.log(fun(str3))

            //             6.要求：检查一个字符串是否以指定的字符串结尾。

            //         function(){
            //     return 布尔值
            // }
            // fun(str,value)

            // -   如果是，返回true;如果不是，返回false。
            console.log("是否指定的字符串结尾");
            let str5 = "mmnnbbvvcc";
            let val = "cc"
            let fun5 = (str, val) => {
                let strl = str5.length;
                let vall = val.length;
                let vvvv = strl - vall;
                // console.log(str5.substr(vvvv, strl))
                // console.log(str5.charAt("cc"))
                if (str5.substr(vvvv, strl) == val) {
                    return true
                } else {
                    return false
                }
            }
            console.log(fun5(str, val));
            // 寻找连续5位数中的最大数

            //     - 给定一个较大数的字符串
            //     - 该字符串的长度大于等于五
            //     - 从该数字字符串中找出连续五位数并且是其中最大的
            //     - 例如：”1234567890” => 67890
            //         - 例如：”987644” => 98764
            //             - 方法的返回值是一个数字
            console.log("字符串中较大的五位数");
            let str6 = "1234567890";
            let max = 0;
            let funm = () => {
                for (let i = 0; i < str6.length - 4; i++) {
                    if (str6.substr(i, 5) > max) {
                        max = str6.substr(i, 5)
                    }
                }
                return max
            }
            console.log(funm())
            // 随机生成一个五位以内的数，然后输出该数共有多少位，每位分别是什么。
            console.log("随机生成五位以内数");
            let wuwei = parseInt(Math.random() * 100000) + "";
            let wuweil = (wuwei + "").length
            console.log("有" + wuweil + "位数")

            for (let key in wuwei) {
                // console.log(wuwei.charAt(key))
                // console.log(wuwei[key])
                if (wuwei[key]) {
                    console.log("第" + (key * 1 + 1) + "位数是：" + wuwei[key]);
                }
            }
        }


    </script>
</body>

</html>